﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WJP.Domain.Entitys;

namespace WJP.Domain.Repositories
{
    public interface IRepository<TEntity, TPrimaryKey> : IRepository where TEntity : class, IEntity<TPrimaryKey>
    {
        #region Select/Get/Query

        IQueryable<TEntity> GetAll();

        TEntity Get(TPrimaryKey id);

        T Query<T>(Func<IQueryable<TEntity>, T> queryMethod);

        #endregion
    }
}
